Many people look up their symptoms online before they see a clinician, but the tools they find seldom show how trustworthy a suggestion is. Multicare Disease Predictor is a Flask-based web application that ranks likely conditions from symptoms chosen by the user. A Random Forest classifier is trained on 52,718 cleaned symptom records covering 50 conditions, using a 377-element binary symptom vector. Duplicate and contradictory records were removed before training, and a leaf-size constraint (min_samples_leaf = 5) was introduced after a one-off symptom pattern produced an over-confident answer. On a stratified hold-out set of 10,544 records the model reached 96.13% accuracy, 0.959 macro-F1 and 99.89% top-3 accuracy. Re-testing on randomly thinned inputs showed that top-1 accuracy drops to 80.7% with three symptoms and 32.0% with one, which motivates the application’s three-symptom minimum. Every result is shown with training-data evidence for the symptoms entered, plain-language guidance, a downloadable PDF summary and a nearby-hospital locator. Because the training data are synthetic and not clinically validated, the system is offered strictly as an educational aid and not as a diagnostic tool.
Introduction
Multicare Disease Predictor is a machine-learning-based web application designed to predict possible diseases from user-reported symptoms. Existing online symptom checkers often show inconsistent diagnostic accuracy and may provide unreliable urgency recommendations. Multicare aims to address these limitations by combining symptom-based prediction with confidence indicators, supporting evidence, medical guidance, PDF reports and nearby healthcare facility information.
The system uses a Random Forest classifier trained on a public, artificially generated symptom–condition dataset. The original dataset contained 246,945 records covering 773 conditions and 377 symptom indicators. After selecting the 50 most frequent conditions and removing duplicate and contradictory records, 52,718 records were retained for training and evaluation. Symptoms are encoded as binary vectors, and the model produces a ranked list of up to five possible conditions.
To reduce overfitting and excessive confidence, the Random Forest uses a minimum leaf size of five records. This reduced the mean top prediction probability from 92.0% to 81.5%, while test accuracy increased slightly from 96.04% to 96.13%. The application also requires users to enter at least three recognised symptoms before generating a prediction.
The system is organised into four layers: the browser interface, Flask application server, machine-learning and guidance components, and SQLite database. Its main features include searchable symptom input, ranked disease predictions, training-data-based symptom evidence, condition descriptions, self-care guidance, specialist recommendations, urgent-care warnings for 12 conditions, PDF report generation, nearby healthcare facility lookup, and user account management with prediction logs.
Experimental evaluation used an 80:20 stratified train-test split and five-fold cross-validation. The selected Random Forest achieved 96.13% accuracy, a macro F1-score of 0.959, 99.89% top-three accuracy and 99.99% top-five accuracy. However, performance declined substantially when fewer symptoms were provided. Top-one accuracy was 32.0% with one symptom, 63.4% with two, and 80.7% with three. With three symptoms, the correct condition appeared among the top three predictions in 98.6% of test cases. These findings support the minimum-input rule and the use of ranked predictions rather than a single diagnosis.
Despite promising results, the system has important limitations. Its training data are synthetic rather than actual patient records, only 50 conditions are supported, and factors such as age, sex, symptom duration and severity are not considered. The predicted probabilities are also not calibrated clinical risks, and some conditions remain difficult to distinguish because they share symptoms. Consequently, the reported accuracy should not be interpreted as evidence of equivalent real-world clinical performance.
Conclusion
Multicare Disease Predictor combines a cleaned 52,718-record dataset, a leaf-size-regularised Random Forest and a web interface that is open about its limits. The model reaches 96.13% accuracy and 99.89% top-3 accuracy on held-out records, and the partial-input analysis shows why at least three symptoms are required: top-1 accuracy is 80.7% at three symptoms but 32.0% at one. Evidence panels, condition guidance, urgency flags, a PDF summary and a nearby-care locator turn a probability list into usable next steps.
Because the training data are synthetic, the system remains an educational aid. Future work includes evaluation on an independent clinical dataset, probability calibration, restricting the symptom list to informative entries, adding age and sex, and offering a regional-language interface.
References
[1] H. L. Semigran, J. A. Linder, C. Gidengil, and A. Mehrotra, “Evaluation of symptom checkers for self diagnosis and triage: audit study,” BMJ, vol. 351, p. h3480, 2015, doi: 10.1136/bmj.h3480.
[2] S. Gilbert et al., “How accurate are digital symptom assessment apps for suggesting conditions and urgency advice? A clinical vignettes comparison to GPs,” BMJ Open, vol. 10, no. 12, p. e040269, 2020, doi: 10.1136/bmjopen-2020-040269.
[3] W. Wallace et al., “The diagnostic and triage accuracy of digital and online symptom checker tools: a systematic review,” npj Digital Medicine, vol. 5, Art. no. 118, 2022, doi: 10.1038/s41746-022-00667-w.
[4] L. Breiman, “Random forests,” Machine Learning, vol. 45, no. 1, pp. 5–32, 2001, doi: 10.1023/A:1010933404324.
[5] F. Pedregosa et al., “Scikit-learn: Machine learning in Python,” J. Mach. Learn. Res., vol. 12, pp. 2825–2830, 2011.
[6] T. Hastie, R. Tibshirani, and J. Friedman, The Elements of Statistical Learning, 2nd ed. New York, NY, USA: Springer, 2009.
[7] A. Niculescu-Mizil and R. Caruana, “Predicting good probabilities with supervised learning,” in Proc. 22nd Int. Conf. Machine Learning (ICML), 2005, pp. 625–632.
[8] M. Sokolova and G. Lapalme, “A systematic analysis of performance measures for classification tasks,” Inf. Process. Manage., vol. 45, no. 4, pp. 427–437, 2009.
[9] Pallets Projects, “Flask documentation,” [Online]. Available: https://flask.palletsprojects.com/. Accessed: Oct. 2026.
[10] SQLite Consortium, “SQLite documentation,” [Online]. Available: https://www.sqlite.org/docs.html. Accessed: Oct. 2026.
[11] Geoapify, “Places API documentation,” [Online]. Available: https://apidocs.geoapify.com/docs/places/. Accessed: Oct. 2026.
[12] B. Stark, “Disease and symptoms dataset 2023,” Mendeley Data, V1, 2025, doi: 10.17632/2cxccsxydc.1. [Online]. Available: https://data.mendeley.com/datasets/2cxccsxydc/1. Accessed: Oct. 2026.